package ie.lawlor.amvc;

import ie.lawlor.amvc.controller.Controller;
import ie.lawlor.amvc.event.Event;
import ie.lawlor.amvc.event.IEventSink;
import ie.lawlor.amvc.event.IEventSource;

/**
 * @author blawlor
 *
 */
public interface IView extends IEventSink, IEventSource {
	
	void setController(Controller controller);
	boolean isVisible();
	void setViewVisible(boolean visible);
	void addChild(IView childView);
	void addChild(IView childView, String viewName);
	void addDialogChild(IDialogEnabledView childView);
	void setParent(IView view);
	void setParent(IView view, String viewName);
	public IView getParentView();
	
	//The handlers of standard events are part of the interface
    public void doInitView(Event e);
    public void doShowView(Event e);
    public void doHideView(Event e);
	
	
}
